From 1eabc638a98ca9cf0b5f5d3f022c303a7d7ad378 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 28 Aug 2014 19:26:39 +0300 Subject: [PATCH] Fix bug #18339 with segfault when $ is typed into empty LaTeX buffer. Back-ported from trunk revision-id: eliz@gnu.org-20140827194054-k7hd0vvmleql9wos src/syntax.c (scan_lists): Don't examine positions before BEGV. --- src/ChangeLog | 5 +++++ src/syntax.c | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 87a76e65c89..7265b133648 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-08-28 Eli Zaretskii + + * syntax.c (scan_lists): Don't examine positions before BEGV. + (Bug#18339) + 2014-08-25 Eli Zaretskii * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define. diff --git a/src/syntax.c b/src/syntax.c index 0ee48bb3725..5e697d350ff 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -2859,10 +2859,13 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT depth, bool sexpflag) case Smath: if (!sexpflag) break; - temp_pos = dec_bytepos (from_byte); - UPDATE_SYNTAX_TABLE_BACKWARD (from - 1); - if (from != stop && c == FETCH_CHAR_AS_MULTIBYTE (temp_pos)) - DEC_BOTH (from, from_byte); + if (from > BEGV) + { + temp_pos = dec_bytepos (from_byte); + UPDATE_SYNTAX_TABLE_BACKWARD (from - 1); + if (from != stop && c == FETCH_CHAR_AS_MULTIBYTE (temp_pos)) + DEC_BOTH (from, from_byte); + } if (mathexit) { mathexit = 0; -- 2.30.2